package solitaire.controle;

import solitaire.commandes.Command;

/**
 * Interface du moteur du jeu.
 * 
 * @author Andr&eacute; Simon, J&eacute;r&eacute;my Brault
 */
public interface GameInterface {

	/**
	 * D&eacute;marre une partie.
	 */
	public void startGame();
	
	/**
	 * Relance une nouvelle partie.
	 */
	public void restartGame();
	
	/**
	 * Arr&ecirc;te le jeu.
	 */
	public void quitGame();
	
	/**
	 * Change le controlleur du solitaire du moteur.
	 * 
	 * @param solitaire : Le nouveau controlleur du solitaire
	 */
	public void setSolitaire(CSolitaire solitaire);
	
	/**
	 * @return le controlleur du solitaire du moteur
	 */
	public CSolitaire getSolitaire();

	/**
	 * Change la commande g&eacute;rant l'action de d&eacute;marrer une partie au niveau de l'IHM du jeu.
	 * 
	 * @param startGameDisplayCommand : La nouvelle commande
	 */
	public void setStartGameDisplayCommand(Command startGameDisplayCommand);
		
	/**
	 * Change la commande g&eacute;rant l'action de quitter une partie au niveau de l'IHM du jeu.
	 * 
	 * @param quitGameDisplayCommand : La nouvelle commande
	 */
	public void setQuitGameDisplayCommand(Command quitGameDisplayCommand);
	
}
